---
title: Referencia de la API de importaciones de configuración
sidebar:
  label: "astro:config"
i18nReady: true
tableOfContents:
  minHeadingLevel: 2
  maxHeadingLevel: 6
---

import Since from '~/components/Since.astro';

<p><Since v="5.7.0" /></p>

Este módulo virtual `astro:config` expone una versión serializable, tipada y no exhaustiva de la configuración de Astro. Hay dos submódulos para acceder a diferentes subconjuntos de tus valores de configuración: [`/client`](#importaciones-desde-astroconfigclient) y [`/server`](#importaciones-desde-astroconfigserver).

Todos los valores de configuración disponibles pueden accederse desde `astro:config/server`. Sin embargo, para el código ejecutado en el cliente, solo estarán disponibles aquellos valores expuestos por `astro:config/client`. Esto protege tu información haciendo que solo algunos datos estén disponibles en el cliente.

## Importaciones desde `astro:config/client`

```js
import {
  i18n, 
  trailingSlash,
  base,
  build,
  site,
} from "astro:config/client";
```

Usa este submódulo para código del lado del cliente:

```js title="src/utils.js" ins={1} ins="trailingSlash"
import { trailingSlash } from "astro:config/client";

function addForwardSlash(path) {
  if (trailingSlash === "always") {
    return path.endsWith("/") ? path : path + "/";
  } else {
    return path;
  }
}
```

Consulta más sobre las importaciones de configuración disponibles desde `astro:config/client`:

- [`i18n`](/es/reference/configuration-reference/#i18n)
- [`trailingSlash`](/es/reference/configuration-reference/#trailingslash)
- [`base`](/es/reference/configuration-reference/#base)
- [`build.format`](/es/reference/configuration-reference/#buildformat)
- [`site`](/es/reference/configuration-reference/#site)

## Importaciones desde `astro:config/server`

```js
import {
  i18n,
  trailingSlash,
  base,
  build,
  site,
  srcDir,
  cacheDir,
  outDir,
  publicDir,
  root,
} from "astro:config/client";
```

Estas importaciones incluyen todo lo disponible desde `astro:config/client` así como información adicional sensible sobre la configuración de tu sistema de archivos que no es seguro exponer al cliente.

Usa este submódulo para código del lado del servidor:

```js title="astro.config.mjs"
import { integration } from "./integration.mjs";

export default defineConfig({
  integrations: [integration()],
});
```

```js title="integration.mjs" ins={1} ins="outDir"
import { outDir } from "astro:config/server";
import { writeFileSync } from "node:fs";
import { fileURLToPath } from "node:url";

export default function () {
  return {
    name: "internal-integration",
    hooks: {
      "astro:build:done": () => {
        let file = new URL("result.json", outDir);
        // generar datos de alguna operación
        let data = JSON.stringify([]);
        writeFileSync(fileURLToPath(path), data, "utf-8");
      },
    },
  };
}
```

Consulta más sobre las importaciones de configuración disponibles desde `astro:config/server`:

- [`i18n`](/es/reference/configuration-reference/#i18n)
- [`trailingSlash`](/es/reference/configuration-reference/#trailingslash)
- [`base`](/es/reference/configuration-reference/#base)
- [`build.format`](/es/reference/configuration-reference/#buildformat)
- [`build.client`](/es/reference/configuration-reference/#buildclient)
- [`build.server`](/es/reference/configuration-reference/#buildserver)
- [`build.serverEntry`](/es/reference/configuration-reference/#buildserverentry)
- [`build.assetsPrefix`](/es/reference/configuration-reference/#buildassetsprefix)
- [`site`](/es/reference/configuration-reference/#site)
- [`srcDir`](/es/reference/configuration-reference/#srcdir)
- [`cacheDir`](/es/reference/configuration-reference/#cachedir)
- [`outDir`](/es/reference/configuration-reference/#outdir)
- [`publicDir`](/es/reference/configuration-reference/#publicdir)
- [`root`](/es/reference/configuration-reference/#root)
